home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / util / shell / dbGoodies.lha / goodies / keypad / main.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-16  |  2.8 KB  |  138 lines

  1. /*
  2.  
  3. */
  4.  
  5.  
  6. #include "keypad.h"
  7.  
  8. #include <dos/dos.h>
  9. #include <stdio.h>
  10.  
  11. struct IntuitionBase *IntuitionBase;
  12. struct GfxBase *GfxBase;
  13. struct GadToolsBase *GadToolsBase;
  14. struct UtilityBase *UtilityBase;
  15.  
  16. extern struct Window *Project0Wnd;
  17. extern struct Gadget *Project0Gadgets[13];
  18. struct Gadget *G;
  19.  
  20.  
  21. struct TagItem tlist[2] = { {GTIN_Number,0},{TAG_DONE,0}};
  22.  
  23. struct TagItem systaglist[2] = { {TAG_DONE,0}};
  24.  
  25. char buf1[256],buf2[256];
  26.  
  27. void GetName (char *buf)
  28. {
  29.     char buffer[256];
  30.     struct Task *t;
  31.  
  32.     t=FindTask(0);
  33.  
  34.     strcpy(buf,t->tc_Node.ln_Name);
  35. }
  36.  
  37. int mode=1;
  38.  
  39. void do_the_thing (int zahl)
  40. {
  41.     int wert=0;
  42.     tlist[0].ti_Data = (ULONG)&(wert);
  43.  
  44.     GT_GetGadgetAttrsA(G,Project0Wnd,0,(struct TagItem*)&tlist);
  45.  
  46.     if (zahl>=0)    /* werte direkt reinmultiplizieren */
  47.     {
  48.         if (wert>999) wert=0;
  49.         wert = (wert*10) + zahl;
  50.         if (wert>999) wert=zahl;
  51.         GT_SetGadgetAttrs(G,Project0Wnd,0,GTIN_Number,wert,TAG_DONE);
  52.     }
  53.     else        /* kommando bekommmen */
  54.     {
  55.         switch (zahl)
  56.         {
  57.             case -1:                /* EXAMPLE: */
  58.                 if (wert<100)
  59.                 {
  60.                     switch (wert)
  61.                     {
  62.                         case 1:
  63.                              mode=1;
  64.                             SystemTagList("requestchoice VisualKeypad \"ASCII Modus aktiviert\" Verstanden",&systaglist);
  65.                             break;
  66.                         case 2:
  67.                              mode=2;
  68.                             SystemTagList("requestchoice VisualKeypad \"IFF Bild-Modus aktiviert\" Verstanden",&systaglist);
  69.                             break;
  70.                         default:
  71.                             break;
  72.                     }    
  73.                 }
  74.                 else
  75.                 {
  76.                     GetName(buf1);    /* "KEYPAD" */
  77.                     if (mode==1)
  78.                     sprintf(buf2,"$%s %ld ASCII",buf1,wert); /* "$KEYPAD <NUMMER>" */
  79.                     else
  80.                     sprintf(buf2,"$%s %ld IFF",buf1,wert); /* "$KEYPAD <NUMMER>" */
  81.                     SystemTagList(buf2,&systaglist);
  82.                 }
  83.                 break;
  84.  
  85.             case -2:GT_SetGadgetAttrs(G,Project0Wnd,0,GTIN_Number,100,TAG_DONE);
  86.                 break;
  87.  
  88.             case -3:
  89.                 break;
  90.  
  91.             default:
  92.                 break;
  93.         }
  94.     }
  95.  
  96. }
  97.  
  98. int main()
  99. {
  100.     IntuitionBase = (struct IntuitionBase*) OpenLibrary("intuition.library",37L);
  101.     GfxBase = (struct GfxBase*) OpenLibrary("graphics.library",37L);
  102.     GadToolsBase = (struct GadToolsBase*) OpenLibrary("gadtools.library",37L);
  103.     UtilityBase = (struct UtilityBase*) OpenLibrary("utility.library",37L);
  104.  
  105.     if( IntuitionBase && UtilityBase && GfxBase && GadToolsBase )
  106.     {
  107.         if(!SetupScreen())
  108.         {
  109.             if(!OpenProject0Window())
  110.             {
  111.                 int quit;
  112.  
  113.                 G = Project0Gadgets[12];
  114.                 
  115.                 SystemTagList("requestchoice VisualKeypad \"Copyright © 1994 by Daniel Balster\" \"Daniel ist c00l\"",&systaglist);
  116.                 
  117.                 do
  118.                 {
  119.                     Wait( 1L<<Project0Wnd->UserPort->mp_SigBit );
  120.                     
  121.                     quit = HandleProject0IDCMP();
  122.                     do_the_thing(quit);
  123.                 }
  124.                 while( quit!=-4 );
  125.             }
  126.             CloseProject0Window();
  127.         }
  128.         CloseDownScreen();
  129.     }
  130.  
  131.     if( IntuitionBase ) CloseLibrary( IntuitionBase );
  132.     if( UtilityBase ) CloseLibrary( UtilityBase );
  133.     if( GfxBase ) CloseLibrary( GfxBase );
  134.     if( GadToolsBase ) CloseLibrary( GadToolsBase );
  135.  
  136.     return 0;
  137. }
  138.